package com.bingo.datasecurity.handler;

/**
 * 安全处理类，主要负责调用脱敏和加密的方法
 *
 * @author bingo
 * @date 2024/1/29 14:45
 */

public class SecurityHandler {


    /**
     * 安全处理
     *
     * @param paramEntity
     * @param doDecrypt
     */
    public static void handlerSecurity(String methodPath, Object paramEntity, boolean doDecrypt) {
        //加/解密
        try {
            SecretHandler.doEncrypt(methodPath, paramEntity, doDecrypt);
        } catch (Exception e) {
            throw new RuntimeException("数据加/解密处理时出现异常，异常信息【" + e.getMessage() + "】");
        }
        //如果是解密，则继续进行脱敏操作
        if (doDecrypt) {
            //脱敏
            try {
                DesensitizedHandler.doDesensitized(paramEntity);
            } catch (Exception e) {
                throw new RuntimeException("数据脱敏处理时出现异常，异常信息【" + e.getMessage() + "】");
            }
        }
    }


}
